package ar.edu.utn.frsf.tpae.a2013.g02.persistence.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * Objeto del modelo de datos (persistente). Representa una Solicitud de Gastos
 * 
 * @author TPAE-grupo02
 * 
 */

@Entity
@Table(name = "slg")
public class SolicitudDeGastos {

	@Id
	@Column(name = "slg_id")
	@SequenceGenerator(name = "SecuenciaSolicitud", sequenceName = "seq_slg", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SecuenciaSolicitud")
	private Integer id;

	@ManyToOne
	@JoinColumn(name = "slg_emp_id")
	private Empleado empleado;

	@ManyToOne
	@JoinColumn(name = "slg_cco_id")
	private CentroCosto centroCosto;

	@Column(name = "slg_desc")
	private String detalle;

	@Column(name = "slg_imp_est")
	private Float importe;

	@Column(name = "slg_est")
	private String estado;

	@ManyToOne
	@JoinColumn(name = "slg_spv_id")
	private Supervisor supervisor;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Empleado getEmpleado() {
		return empleado;
	}

	public void setEmpleado(Empleado empleado) {
		this.empleado = empleado;
	}

	public CentroCosto getCentroCosto() {
		return centroCosto;
	}

	public void setCentroCosto(CentroCosto centroCosto) {
		this.centroCosto = centroCosto;
	}

	public String getDetalle() {
		return detalle;
	}

	public void setDetalle(String detalle) {
		this.detalle = detalle;
	}

	public Float getImporte() {
		return importe;
	}

	public void setImporte(Float importe) {
		this.importe = importe;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public Supervisor getSupervisor() {
		return supervisor;
	}

	public void setSupervisor(Supervisor supervisor) {
		this.supervisor = supervisor;
	}

	public boolean equals(Object arg0) {
		if (!(arg0 instanceof SolicitudDeGastos)) {
			return false;
		}
		return this.getId() == ((SolicitudDeGastos) arg0).getId();
	}
}
